home *** CD-ROM | disk | FTP | other *** search
- Type "make" to check the validity of the f2c source and compile f2c.
-
- On a PC, you may need to compile xsum.c with -DMSDOS (i.e., with
- MSDOS #defined).
-
- If your compiler does not understand ANSI/ISO C syntax (i.e., if
- you have a K&R C compiler), compile with -DKR_headers .
-
- On non-Unix systems where files have separate binary and text modes,
- you may need to "make xsumr.out" rather than "make xsum.out".
-
- If (in accordance with what follows) you need to modify the makefile
- or any of the source files, first issue a "make xsum.out" (or, if
- appropriate, "make xsumr.out") to check the validity of the f2c source,
- then make your changes, then type "make f2c".
-
- The file usignal.h is for the benefit of strictly ANSI include files
- on a UNIX system -- the ANSI signal.h does not define SIGHUP or SIGQUIT.
- You may need to modify usignal.h if you are not running f2c on a UNIX
- system.
-
- Should you get the message "xsum0.out xsum1.out differ", see what lines
- are different (`diff xsum0.out xsum1.out`) and ask netlib to send you
- the files in question "from f2c/src". For example, if exec.c and
- expr.c have incorrect check sums, you would send netlib the message
- send exec.c expr.c from f2c/src
-
- On some systems, the malloc and free in malloc.c let f2c run faster
- than do the standard malloc and free. Other systems cannot tolerate
- redefinition of malloc and free. If yours is such a system, you may
- either modify the makefile appropriately, or simply execute
- cc -c -DCRAY malloc.c
- before typing "make". Still other systems have a -lmalloc that
- provides performance competitive with that from malloc.c; you may
- wish to compare the two on your system.
-
- On some BSD systems, you may need to create a file named "string.h"
- whose single line is
- #include <strings.h>
- you may need to add " -Dstrchr=index" to the "CFLAGS =" assignment
- in the makefile, and you may need to add " memset.o" to the "OBJECTS ="
- assignment in the makefile -- see the comments in memset.c .
-
- For non-UNIX systems, you may need to change some things in sysdep.c,
- such as the choice of intermediate file names.
-
- On some systems, you may need to modify parts of sysdep.h (which is
- included by defs.h). In particular, for Sun 4.1 systems and perhaps
- some others, you need to comment out the typedef of size_t. For some
- systems (e.g., IRIX 4.0.1 and AIX) it is better to add
- #define ANSI_Libraries
- to the beginning of sysdep.h (or to supply -DANSI_Libraries in the
- makefile).
-
- Alas, some systems #define __STDC__ but do not provide a true standard
- (ANSI or ISO) C environment, e.g. do not provide stdlib.h . If yours
- is such a system, then (a) you should complain loudly to your vendor
- about __STDC__ being erroneously defined, and (b) you should insert
- #undef __STDC__
- at the beginning of sysdep.h . You may need to make other adjustments.
-
- For some non-ANSI versions of stdio, you must change the values given
- to binread and binwrite in sysdep.c from "rb" and "wb" to "r" and "w".
- You may need to make this change if you run f2c and get an error
- message of the form
- Compiler error ... cannot open intermediate file ...
-
- On many systems, it is best to combine libF77 and libI77 into a single
- library, say libf2c, as suggested in "readme from f2c". If you do this,
- then you should adjust the definition of link_msg in sysdep.c
- appropriately (e.g., replacing "-lF77 -lI77" by "-lf2c").
-
- Some older C compilers object to
- typedef void (*foo)();
- or to
- typedef void zap;
- zap (*foo)();
- If yours is such a compiler, change the definition of VOID in
- f2c.h from void to int.
-
- For convenience with systems that use control-Z to denote end-of-file,
- f2c treats control-Z characters (ASCII 26, '\x1a') that appear at the
- beginning of a line as an end-of-file indicator. You can disable this
- test by compiling lex.c with NO_EOF_CHAR_CHECK #defined, or can
- change control-Z to some other character by #defining EOF_CHAR to
- be the desired value.
-
-
- If your machine has IEEE, VAX, or IBM-mainframe arithmetic, but your
- printf is inaccurate (e.g., with Symantec C++ version 6.0,
- printf("%.17g",12.) prints 12.000000000000001), you can make f2c print
- correctly rounded numbers by compiling with -DUSE_DTOA and adding
- dtoa.o g_fmt.o to the makefile's OBJECTS = line, so it becomes
-
- OBJECTS = $(OBJECTSd) malloc.o dtoa.o g_fmt.o
-
- Also add the rule
-
- dtoa.o: dtoa.c
- $(CC) -c $(CFLAGS) -DMALLOC=ckalloc -DIEEE... dtoa.c
-
- (without the initial tab) to the makefile, where IEEE... is one of
- IEEE_MC68k, IEEE_8087, VAX, or IBM, depending on your machine's
- arithmetic. See the comments near the start of dtoa.c.
-
- The relevant source files, dtoa.c and g_fmt.c, are available
- separately from netlib's fp directory. For example, you could
- send the E-mail message
-
- send dtoa.c g_fmt.c from fp
-
- to netlib@research.att.com (or use anonymous ftp from netlib.att.com
- and look in directory /netlib/fp).
-
-
- Please send bug reports to dmg@research.att.com . The old index file
- (now called "readme" due to unfortunate changes in netlib conventions:
- "send readme from f2c") will report recent changes in the recent-change
- log at its end; all changes will be shown in the "changes" file
- ("send changes from f2c"). To keep current source, you will need to
- request xsum0.out and version.c, in addition to the changed source
- files. Changes first appear on netlib@research.att.com, and in due
- time propagate to the other netlib sites that are kept current.
-